package br.sddp.controle;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.sddp.dao.DuvidaDAO;
import br.sddp.dao.RespostaDAO;
import br.sddp.modelo.Duvida;
import br.sddp.modelo.Resposta;
import br.sddp.util.WebUtil;

@SessionScoped
@ManagedBean
public class RespostaBean {

	private List<Resposta> respostas;
	private Resposta resposta = new Resposta();
	private Duvida duvida = new Duvida();
	private List<Resposta> respostasPorUsuario;

	/**
	 * Metodo que realiza a resposta da prova.
	 * 
	 */
	public void responder() {

		//Preenche o objeto resposta
		this.resposta.setIdDuvida(this.duvida.getIdDuvida());

		//Persiste a resposta no banco de dados
		RespostaDAO respostaDAO = new RespostaDAO();
		respostaDAO.cadastrar(this.resposta);

		//Atualiza a duvida para respondida.
		DuvidaDAO duvidaDAO = new DuvidaDAO();
		Duvida duvida = this.duvida;
		duvida.setStatus(true);
		duvida.setResposta(respostaDAO.buscarPorDuvida(this.duvida.getIdDuvida()));
		duvidaDAO.atualizar(duvida);

		//Redireciona para outra página.
		WebUtil.redirecionar("index.xhtml");
	}

	/*METODOS MODIFICADORES*/
	public List<Resposta> getRespostas() {

		if(this.respostas == null) {
			RespostaDAO respostaDAO = new RespostaDAO();
			this.respostas = respostaDAO.listarRespostas();
		}

		return this.respostas;
	}

	public void setRespostas(List<Resposta> respostas) {
		this.respostas = respostas;
	}

	public Resposta getResposta() {
		return resposta;
	}

	public void setResposta(Resposta resposta) {
		this.resposta = resposta;
	}

	public Duvida getDuvida() {
		return duvida;
	}

	public void setDuvida(Duvida duvida) {
		this.duvida = duvida;
	}

	public List<Resposta> getRespostasPorUsuario() {

		return respostasPorUsuario;
	}

	public void setRespostasPorUsuario(List<Resposta> respostasPorUsuario) {
		this.respostasPorUsuario = respostasPorUsuario;
	}
}
